NOTE
1.6 Redis pubsub
1. Redis Pub/Sub是什么 publisher把消息丢给channel,有多个subcriber可以订阅这个channel。 类似于消息队列介绍.md的发布订阅模式,解耦了publisher和subcriber 2. Redis Pub/Sub使用 2.1. 基本使用 - 订阅者1订阅c
这是历史学习笔记,可能存在过时或不完整的理解。
1. Redis Pub/Sub是什么
publisher把消息丢给channel,有多个subcriber可以订阅这个channel。 类似于消息队列介绍.md(关联笔记尚未公开)的发布订阅模式,解耦了publisher和subcriber
2. Redis Pub/Sub使用
2.1. 基本使用
PUBLISH
SUBSCRIBE
UNSUBSCRIBE
- 订阅者1订阅channel
127.0.0.1:6379> SUBSCRIBE foo bar
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "bar"
3) (integer) 2
- 订阅者2订阅channel
127.0.0.1:6379> SUBSCRIBE foo bar
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "bar"
3) (integer) 2
- 发布者发布channel
127.0.0.1:6379> PUBLISH foo hahaha
(integer) 2
127.0.0.1:6379> PUBLISH bar jiejiej
(integer) 2
127.0.0.1:6379>
- 订阅者1、2收到消息
127.0.0.1:6379> SUBSCRIBE foo bar
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "bar"
3) (integer) 2
1) "message"
2) "foo"
3) "hahaha"
1) "message"
2) "bar"
3) "jiejiej"
- 订阅者1退出订阅
UNSUBSCRIBE foo bar
- 发布者发布消息只有订阅者2收到
- 订阅者3订阅channel不会收到原有的消息
127.0.0.1:6379> SUBSCRIBE foo bar
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "bar"
3) (integer) 2
2.2. 模式匹配
- 语法测试:
PSUBSCRIBE news.*
PUNSUBSCRIBE news.*
- 如果订阅者用基本格式和模式匹配订阅了一个频道,那么会收到后重复的消息
SUBSCRIBE foo
PSUBSCRIBE f*